# 前言
在第一章,我们已经大致了解过 CI/CD 的作用和历史。从这一章起,我们将正式开启搭建一套 CI/CD 流程。在开始之前,首先要学习下贯穿我们全程的一个技术:Docker 和 Jenkins
# 什么是 Docker
- Docker 是一个开源的应用容器引擎。开发者可以将自己的应用打包在自己的镜像里面,然后迁移到其他平台的 Docker 中。镜像中可以存放你自己自定义的运行环境,文件,代码,设置等等内容,再也不用担心环境造成的运行问题。镜像共享运行机器的系统内核。
- 同样, Docker 也支持跨平台。你的镜像也可以加载在 Windows 和 Linux,实现快速运行和部署。

Docker 的优势在于 快速,轻量,灵活。开发者可以制作一个自己自定义的镜像,也可以使用官方或者其他开发者的镜像来启动一个服务。通过将镜像创建为容器,容器之间相互隔离资源和进程不冲突。但硬件资源又是共享的。 创建的镜像也可以通过文件快速分享,也可以上传到镜像库进行存取和管理。同时 Docker 的镜像有 分层策略 ,每次对镜像的更新操作,都会堆叠一个新层。当你拉取 / 推送新版本镜像时,只推送 / 拉取修改的部分。大大加快了镜像的传输效率
- 那么 Docker 在 CI/CD 中的作用是什么呢?
- Docker 贯穿 CI/CD 中整个流程。作为应用服务的载体有着非常重要的地位。
- 我们可以使用 Docker 将应用打包成一个镜像,交给 Kubernetes 去部署在目标服务集群。并且可以将镜像上传到自己的镜像仓库,做好版本分类处理。
# 安装 Docker
- 在了解了 Docker 的作用后,我们来开始安装
Docker。在开始安装之前,需要安装device-mapper-persistent-data和lvm2两个依赖。 device-mapper-persistent-data是Linux下的一个存储驱动, Linux 上的高级存储技术。 Lvm 的作用则是创建逻辑磁盘分区。这里我们使用 CentOS 的 Yum 包管理器安装两个依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2
@前端进阶之旅: 代码已经复制到剪贴板
依赖安装完毕后,我们将阿里云的 Docker 镜像源添加进去。可以加速 Docker 的安装。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
@前端进阶之旅: 代码已经复制到剪贴板
安装完毕,我们就可以使用 systemctl 启动来启动 Docker 了。systemctl 是 Linux 的进程管理服务命令,他可以帮助我们启动 docker
systemctl start docker
systemctl enable docker
@前端进阶之旅: 代码已经复制到剪贴板
接着执行一下 docker -v ,这条命令可以用来查看 Docker 安装的版本信息。当然也可以帮助我们查看 docker 安装状态。如果正常展示版本信息,代表 Docker 已经安装成功。

# 配置阿里云镜像源
- 在 Docker 安装完毕后,之后我们去拉取 docker 镜像时,一般默认会去 docker 官方源拉取镜像。但是国内出海网速实在是太慢,所以选择我们更换为 阿里云镜像仓库 源进行镜像下载加速。
- 登录阿里云官网,打开 阿里云容器镜像服务。点击左侧菜单最下面的 镜像加速器 ,选择 CentOS (如下图)。按照官网的提示执行命令,即可更换 docker 镜像源地址。

